#include "productor_persona.h"

Productor_Persona::Productor_Persona(QVector<CCajero*> ccajs)
{
    this->ccajeros = ccajs;
}

Productor_Persona::Productor_Persona(){}

void Productor_Persona::run(){
    while(true){
        Crear_Persona();
    }
}

void Productor_Persona::Enviar(bool mensaje, QThread receptor){

}

void Productor_Persona::Recibir(bool mensaje, QThread emisor){

}

void Productor_Persona::setCcajeros(QVector<CCajero*> ccajs){
    ccajeros=ccajs;
}

QVector<CCajero*> Productor_Persona::getCcajeros(){
    return this->ccajeros;
}

void Productor_Persona::Crear_Persona(){
    Persona *persona = new Persona();
    persona->setCedula(CrearCedula());
    Tarjeta *tarjeta = new Tarjeta();
    tarjeta->setcontrasena(this->Crear_Clave_Tarjeta());
    tarjeta->setNumero((long)qrand()*44644235);
    persona->setTarjeta(tarjeta);
    int preferencia = persona->IndicarPreferencia();
    switch (preferencia) {
            case 0:this->ccajeros.at(0)->getMCajero()->AgregarCola(persona);break;
            case 1:this->ccajeros.at(1)->getMCajero()->AgregarCola(persona);break;
            case 2:this->ccajeros.at(2)->getMCajero()->AgregarCola(persona);break;
            case 3:this->ccajeros.at(3)->getMCajero()->AgregarCola(persona);break;
            case 4:this->ccajeros.at(4)->getMCajero()->AgregarCola(persona);break;
            case 5:this->ccajeros.at(5)->getMCajero()->AgregarCola(persona);break;
            default: break;
    }

}

Cuenta* Productor_Persona::Crear_Cuenta() {
        Cuenta *cuenta = new Cuenta(Crear_Numero_Cuenta(),1000);
        return cuenta;
}


double Productor_Persona::Crear_Saldo_Incial_Cuenta() {
     return 5000*qrand();
}


QString Productor_Persona::Crear_Numero_Cuenta() {
    return QString::number((861322*qrand()));
}


QString Productor_Persona::Crear_Clave_Tarjeta() {
    QString clave="";
    for(int i=0;i<4;i++){
        clave+=QString::number((int)(9*qrand()));
    }
    return clave;
}


int Productor_Persona::CrearNumero_Tarjeta() {
        return (int) (5466464*qrand());
}

QString Productor_Persona::CrearCedula(){
    return QString::number((int)(4543487*qrand()));
}

